key boardだけでpage遷移
2020-12-24 12:07:33 ScrapBindingsの一機能として組み込めるようにした
設定方法はScrapBindings-settings#5fe39ce61280f0000065b208を参照
このページのコードはめんどくさいのでメンテナンスしません
そもそも実装が雑だし回りくどいし
気が向いたらするかも
2021-01-27 08:09:35 動かないとの報告があったので直しました
/icons/hr.icon
/cdn/キーボードだけでページ遷移を実装し直す
動機
/forum-jp/キーボードだけでリンク遷移をしたいで動かないのでなんとかしたいという要望があった
ここにもある:/customize/キーボードだけでページ遷移
scrapboxにVim key bindを組み込みたいのprototypeを作る
実装
cursorがあるlinkを抽出
LinkObserverの処理を使えばいい
key入力
Mousetrapを使う
使い方
以下を自分のページのscript.jsに書く
code:js
import '/api/code/takker/key_boardだけでpage遷移/install.js';
作ってみようtakker.icon
2020-11-12 01:05:56 できた
スクロールせずに見える領域の外でも使えるっぽい
cf. /customize/キーボードだけでページ遷移#5fa4494e4daa920000489912
code:install.js
// Mousetrap.jsをinstallする
// 別のscriptでinstallしている場合は削って大丈夫です
import {installMousetrap} from '/api/code/takker/scrapbox-mousetrap-installer/script.js';
installMousetrap();
// 本体をinstallする
const oldScript = document.getElementById('scrapbox-click-link');
oldScript?.parentNode?.removeChild?.(oldScript);
const clickLinkScript = document.createElement("script");
clickLinkScript.src = '/api/code/takker/key_boardだけでpage遷移/script.js';
clickLinkScript.id = 'scrapbox-click-link';
clickLinkScript.type = 'module';
document.body.appendChild(clickLinkScript);
2020-12-14 01:19:58 これscrapbox-install-CDNを使って書き直したほうがいいかなあtakker.icon
そこまでする気は起きないが
というか、これを作り変えるよりScrapVimに同様の機能を埋め込みたい
code:script.js
import {getLinkIncludingCursor} from '/api/code/takker/Scrapboxでcursor下のリンクを取得する/script.js';
const command = 'ctrl+s';
const mousetrapOnEdit = new Mousetrap(document.getElementById('editor'));
↑ScrapboxでMousetrapを使うときの注意点
code:script.js
mousetrapOnEdit.bind(command, clickLinkUnderCursor);
console.log('Finish setting for Mousetrap.');
リンククリックの機能のコア部分
Scrapboxでcursor下のリンクを取得する機能を使用しているだけです
code:script.js
function clickLinkUnderCursor() {
const targetLink = getLinkIncludingCursor();
if (!targetLink) {
console.log('No link found.');
return;
}
console.log('Target link: %o', targetLink);
targetLink.click();
}
#2021-01-29 17:29:48
#2021-01-27 08:11:01
#2020-12-24 12:08:07
#2020-12-14 01:21:07
#2020-11-12